package com.bdbit.ChargingStation.Utils;


import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**

 * Created by yuanopen on 2018/7/14/014.

 */



public class GsonUtils {
    private static Gson GsonUtilsGson = new GsonBuilder().serializeNulls().create();
    static Logger log = LoggerFactory.getLogger(GsonUtils.class);
    /**

     * @fun 根据不同类型进行json到实体间的转化

     * @param jsonString json字符串

     * @param cls 需要转化的类型

     * @param <T> 需要转化的类型

     * @return 返回实体对象

     */

    public static  <T> T josnToModule(String jsonString, Class<T> cls)  {
        T list=null ;
        try {
            log.info("将数据"+jsonString+"转换为："+cls.getName()+"类");
            list=GsonUtilsGson.fromJson(jsonString,cls);
        }catch (Exception e){
            log.info("将数据"+jsonString+"转换为："+cls.getName()+"类，"+"数据转换失败");
            log.info(e.getMessage());
        }
        return list;
    }



    /**

     * @fun 根据不同类型进行实体到json间的转化

     * @param cls 需要转化的类型

     * @param <T> 需要转化的类型

     * @return 返回Json字符串

     */

    public static  <T> String  ModuleTojosn(T cls) {

        return  GsonUtilsGson.toJson(cls);

    }

}
